﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Data.OleDb;
using DTO;
using DAO;
using BUS;

namespace QL_xxx
{
    /// <summary>
    /// Interaction logic for NhapXuatSP.xaml
    /// </summary>
    public partial class NhapXuatSP : Window
    {
        public event OnNhapXuatSPThanCong onthanhCong;
        public const int nhap = 0;
        public const int xuat = 1;

        private int trangThai;

        public int TrangThai
        {
            get { return trangThai; }
            set { trangThai = value; }
        }
        private int maSP;

        public int MaSP
        {
            get { return maSP; }
            set { maSP = value; }
        }

        private SanPhamDTO sp;
        public NhapXuatSP(int _trangThai, int _maSP)
        {
            this.InitializeComponent();

            TrangThai = _trangThai;
            sp = SanPhamBUS.LayDSSanPham(_maSP)[0];
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            txtSL.Text = "0";

            errorSL.Text = "OK";
            errorSL.Foreground = Brushes.Green;
        }

        private void txtSL_TextChanged(object sender, TextChangedEventArgs e)
        {
            int n = 0;
            if (txtSL.Text.Trim().Length == 0)
            {
                errorSL.Foreground = Brushes.Red;
                errorSL.Text = "Bạn phải điền số lượng sản phẩm vào đây.";
            }
            else
                if (!int.TryParse(txtSL.Text, out n))
                {
                    errorSL.Foreground = Brushes.Red;
                    errorSL.Text = "Số lượng sản phẩm phải là số nguyên.";
                }
                else
                    if (int.Parse(txtSL.Text) > sp.SoLuongTrongKho && trangThai == xuat)
                    {
                        errorSL.Foreground = Brushes.Red;
                        errorSL.Text = "Số lượng xuất phải nhỏ hơn số lượng trong kho.";
                    }
                    else
                    {
                        errorSL.Text = "OK";
                        errorSL.Foreground = Brushes.Green; ;
                    }
        }

        private void errorTen_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (string.Compare(errorSL.Text, "OK") == 0)
                btnOK.IsEnabled = true;
            else
                btnOK.IsEnabled = false;
        }

        private void btnLuu_Click(object sender, RoutedEventArgs e)
        {
            if (trangThai == nhap)
            {
                sp.SoLuongTrongKho += int.Parse(txtSL.Text);
            }
            else
            {
                sp.SoLuongTrongKho -= int.Parse(txtSL.Text);
            }
            int kq = SanPhamBUS.SuaSoLuongSanPham(sp);
            if (kq == SanPhamBUS.thanhCong)
            {
                MessageBox.Show("Đã thực hiện");
                onthanhCong();
            }
            else
            {
                MessageBox.Show("Lỗi chưa xác định, vui lòng liên hệ nhà cung cấp.");
            }
            this.Close();
        }

        private void btnHuy_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }
    }
}